恶意样本检测——Mathematics Malware Detected Tools
本文为看雪论坛优秀文章
看雪论坛作者ID:xiaoduoduo
并在此基础上,从“分类”衍生出恶意代码检测功能,从“聚类”衍生出恶意代码同源样本挖掘功能。
>>>> 工具特点
工具特点
>>>> 工具目的
工具目的
可参考著名工具ssdeep的目的及意义。
>>>> 原理概要
原理概要
>>>> main.ini
main.ini
[version]
version=1.0.0
[owner]
name=mmdt
[main_param]
auto-add=0 // function-type=3时生效,用于分类“训练模型”时(是否自动更新模型)0:不更新,非0:更新
auto-move=0 // 用于聚类时是否移动文件,0:不移动,非0:移动
function-type=3 // 选择功能,2:相似度计算比较,3:分类训练/扫描,4:聚类
normalization-standar=100 // 归一化标准,默认100
scan-level=10 // 扫描覆盖率,取值在[0, 5]之间时越大覆盖率越高,准确性越低,其他值为默认扫描,覆盖率最低,准确性最高
first-level=60 // 方式1的准确度,取值在[0, 100]之间,越低越准确,覆盖率越低
second-level=50 // 方式2的准确度,取值在[0, 100]之间,越低越准确,覆盖率越低
accury-level=3 // 计算相似度方式,取值为1、3,取值为1时使用低精度方式,取值为3时使用高精度方式
thresold=0.5 // 判定阈值
classify-id=-1 // 分类“训练模型”是生效,需要给定当前这批文件的标签
max-cluster-number=1000 //支持最大聚类数量
max-file-size=20971520 //支持最大处理文件大小20M,超过的截断处理
rule-file=rule.db // 规则库(模型存储)
label-file=classify-label.ini // 标签配置文件
>>>> classify-label.ini
classify-label.ini
[
version=1.0.0
[ ]
name=mmdt
[ ]
-1=Unknown // id: -1 保留值,映射为 Unknown
0=Clean // id: 0 保留值,映射为 Clean
1=Sality // id: 1 自增,映射为 Sality(病毒名)
... // 后续依次自增
>>>> cmd参数
cmd参数
Version: 1.0.0
Options:
--help, -h,show help info.
--auto-add, -a,auto add rule.
--auto-move, -b,auto move cluster.
--function-type, -f,function type.
--normalization-standard, -n,normalization standard.
--scan-level, -l,scan level.
--first-level, -d,first level.
--second-level, -e,second level.
--classify-id, -j,classify id.
--thresold, -p,thresold value.
--compare-file, -c,comare file.
--max-cluster-number, -m,max cluster number.
--ini-file, -i,ini file
--label-file, -o,label file
--rule-file, -r,rule file
--target, -t,target
>>>> 分类场景
分类场景
生成特征库(模型“训练”)
-a: 1表示自动存储满足条件的指纹
-j: 1表示标签id
-r: 特征库文名称
-o: 标签文件
-t: 目标对象,可以是单个文件,也可以是目录(目录必须带上最后的斜杆)
>>>> 可执行文件检测
可执行文件检测
total number: 表示一共扫描的文件个数
scanned number: 表示本工具能处理的文件个数
can't recognize number: 表示本公举不能处理的文件个数
add rule number: 表示添加的规则数
total classify number: 表示能识别的文件总数
checkout classify ratio: 表示识别率
total run : 表示本次程序执行时间
>>>> 非可执行文件检测
非可执行文件检测
与PE文件检测完全一致。
>>>> 聚类场景
聚类场景
恶意代码聚类
-f: 4表示采用聚类模式
-b: 1表示自动移动同源文件到相同目录
-m: 表示本次聚类支持的最大类别数量
-t: 目标对象,可以是单个文件,也可以是目录(目录必须带上最后的斜杆)
>>>> 相似度计算场景
相似度计算场景
恶意文件相似度计算
计算Gandcrab_2和其他文件之间的相似度,执行命令:
-f: 2表示采用计算相似度模式
-c: 表示比较的目标对象(只能是文件,不能是文件夹)
-t: 表示目标对象,可以是单个文件,也可以是目录(目录必须带上最后的斜杆)
计算CVE-2018-0802_1和其他文件之间的相似度:执行命令:
源代码相似度计算
webshell相似度计算
宏代码相似度计算
>>>> 其他使用场景
其他使用场景
4. 放大数据集,RS比率会降低
为什么不开源代码?
code水平很差,代码太丑,暂时不好意思开源 这个工具是论文的验证demo,需要完成论文后,才方便开源
为什么单独提供工具?
主要希望能换取更多的合法数据(样本),进行测试 次之希望有大佬能提供测试结果,能引用到论文中。
未来是否对这个工具的改进?
结合动态技术,对内存做运算,生成指纹,进行匹配 增加C/S,B/S模式,增加缓存机制,以支持更大数据集提供更好的特征子集 智能配置文档生成,更优支持更多的文件类型
Github地址
压缩包解压码
引用1:引用自woffffcibei,感谢大牛贡献数据。
看雪ID:xiaoduoduo
https://bbs.pediy.com/user-10578.htm
推荐文章++++